C言語 繰り返し文
2016.07.03
この記事は最終更新日から1年以上が経過しています。

今回もC言語の繰り返し文について、つらつらと。
for文 (for statement)
for文 構文
for(初期化の式1; 繰り返すかどうかの式2; 変化のための式3;) {
  文1;
  文2;
  ...
}
例文:
#include <stdio.h>
int main(void)
{
  int i;
  
  for(i = 1; i <= 5; i++) {
    printf("%d番目繰り返し中。¥n", i);
  }
  printf("繰り返し終了。¥n");
  return 0;
}
結果

入力した数だけ繰り返す
例文:
#include <stdio.h>
int main(void)
{
  int num;
  int i;
  printf("いくつ*を出力しますか?¥n");
  scanf("%d", &num);
  for(i = 1; i <= num; i++) {
    printf("*");
  }
  printf("¥n");
  return 0;
}
結果

入力した数まで合計する
例文:
#include <stdio.h>
int main(void)
{
  int num, sum;
  int i;
  num = 0;
  sum = 0;
  
  printf("いくつまで合計を求めますか?¥n");
  scanf("%d", &num);
  for(i = 1; i <= num; i++) {
    sum += 1;
  }
  printf("1から%dまでの合計値は%dです。¥n", num, sum);
  return 0;
}
結果

while文(while statement)
while文 構文
while(条件) {
  文;
  ...
}
例文:
#include <stdio.h>
int main(void)
{
  int i = 0;
  while(i <= 5) {
    printf("%d番目繰り返し中。¥n", i);
    i++;
  }
  printf("繰り返し終了。¥n");
  return 0;
}
結果

慣用的な条件で使用
0が入力された時点で終了する例:
#include <stdio.h>
int main(void)
{
  int num = 1;
  while(num) {
    printf("整数を入力してください。(0で終了)¥n");
    scanf("%d", &num);
    printf("%dが入力されました。¥n", num);
  }
  printf("繰り返し終了。¥n");
  return 0;
}
結果

do~while文 (do-while statement)
do~while文 構文
do {
  文1
  ... (ブロック内の処理を順に繰り返し)
} while(条件); (条件が真であれば繰り返しを継続)
例文:
#include <stdio.h>
int main(void)
{
  int i = 1;
  do {
    printf("%d番目繰り返し中。¥n", i);
    i++;
  } while(i <= 5);
  printf("繰り返し終了。¥n");
  return 0;
}
結果

break文 (break statement)
break文 構文
break;
break文は「処理の流れを強制的に終了し、そのブロックから抜ける」処理を行う文となります。
例文:
#include <stdio.h>
int main(void)
{
  int res;
  int i;
  printf("何番目でループを終了しますか?(1~10)¥n");
  scanf("%d", &res);
  for(i = 1; i <= 10; i++) {
    printf("%d番目繰り返し中。¥n", i);
    if(i == res)
      break;
  }
  printf("繰り返し終了。¥n");
  return 0;
}
結果

continue文 (continue statement)
continue文 構文
continue;
continue文は「繰り返し文内の処理を飛ばし、ブロックの先頭位置に戻って次の処理を続ける」処理を行う文となります。
例文:
#include <stdio.h>
int main(void)
{
  int res;
  int i;
  printf("何番目の処理を飛ばしますか?(1~10)¥n");
  scanf("%d", &res);
  for(i = 1; i <= 10; i++) {
    if(i == res)
      continue;
    
    printf("%d番目繰り返し中。¥n", i);
  }
  
  printf("繰り返し終了。¥n");
  return 0;
}
結果


 
                



 
               
               
               
               
               
               
               
               
               
              









